.popover {
    position: absolute;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-clip: border-box;
    width: var(--popover--width);
    max-width: var(--popover--max-width);
    z-index: var(--popover--z-index);
}

.popover-trigger {
    display: inline-flex;
}

.popover[data-popup-placement^="top"] {
    transform-origin: center bottom;
}

.popover[data-popup-placement^="right"] {
    transform-origin: left center;
}

.popover[data-popup-placement^="bottom"] {
    transform-origin: center top;
}

.popover[data-popup-placement^="left"] {
    transform-origin: right center;
}

.popover-arrow {
    position: absolute;
}

.popover-arrow, .popover-arrow::after {
    display: block;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
    position: absolute;
    box-sizing: border-box;
}

.popover-arrow::after {
    content: "";
}

.popover[data-popup-placement^="top"] .popover-arrow, .popover[data-popup-placement^="top"] .popover-arrow::after {
    border-bottom-width: 0;
}

.popover[data-popup-placement^="bottom"] .popover-arrow, .popover[data-popup-placement^="bottom"] .popover-arrow::after {
    border-top-width: 0;
}

.popover[data-popup-placement^="right"] .popover-arrow, .popover[data-popup-placement^="right"] .popover-arrow::after {
    border-left-width: 0;
}

.popover[data-popup-placement^="left"] .popover-arrow, .popover[data-popup-placement^="left"] .popover-arrow::after {
    border-right-width: 0;
}

.popover {
    box-shadow: var(--popover--box-shadow, var(--popover--box-shadow-offset-x) var(--popover--box-shadow-offset-y) var(--popover--box-shadow-blur-radius) var(--popover--box-shadow-spread-radius) var(--popover--box-shadow-color));
    color: var(--popover--color);
    font-size: var(--popover--font-size);
    background: var(--popover--background);
    border-style: var(--popover--border-style, var(--popover--border-top-style) var(--popover--border-right-style) var(--popover--border-bottom-style) var(--popover--border-left-style));
    border-color: var(--popover--border-color, var(--popover--border-top-color) var(--popover--border-right-color) var(--popover--border-bottom-color) var(--popover--border-left-color));
    border-width: var(--popover--border-width, var(--popover--border-top-width) var(--popover--border-right-width) var(--popover--border-bottom-width) var(--popover--border-left-width));
    border-radius: var(--popover--border-radius, var(--popover--border-top-left-radius) var(--popover--border-top-right-radius) var(--popover--border-bottom-right-radius) var(--popover--border-bottom-left-radius));
    padding: var(--popover--padding, var(--popover--padding-top) var(--popover--padding-right) var(--popover--padding-bottom) var(--popover--padding-left));
    transition-property: var(--popover--transition-property);
    transition-duration: var(--popover--transition-duration);
    transition-timing-function: var(--popover--transition-timing-function);
}

.popover-header, .popover-footer {
    border-style: var(--popover--border-style, var(--popover--border-top-style) var(--popover--border-right-style) var(--popover--border-bottom-style) var(--popover--border-left-style));
    border-color: var(--popover--border-color, var(--popover--border-top-color) var(--popover--border-right-color) var(--popover--border-bottom-color) var(--popover--border-left-color));
    border-width: var(--popover--border-width, var(--popover--border-top-width) var(--popover--border-right-width) var(--popover--border-bottom-width) var(--popover--border-left-width));
    padding: var(--popover--padding, var(--popover--padding-top) var(--popover--padding-right) var(--popover--padding-bottom) var(--popover--padding-left));
}

.popover-header {
    border-right-width: 0;
    border-left-width: 0;
    margin-top: calc(var(--popover--padding-top) * -1);
    margin-right: calc(var(--popover--padding-right) * -1);
    margin-bottom: var(--popover--padding-bottom, calc(var(--spacing) * 0.75));
    margin-left: calc(var(--popover--padding-left) * -1);
}

.popover-footer {
    border-right-width: 0;
    border-left-width: 0;
    margin-top: var(--popover--padding-top, calc(var(--spacing) * 0.75));
    margin-right: calc(var(--popover--padding-right) * -1);
    margin-bottom: calc(var(--popover--padding-bottom) * -1);
    margin-left: calc(var(--popover--padding-left) * -1);
}

.popover .popover-header:first-child, .popover .popover-footer:first-child {
    border-top-width: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    border-top-left-radius: var(--popover--border-top-left-radius, var(--border-top-left-radius));
    border-top-right-radius: var(--popover--border-top-right-radius, var(--border-top-right-radius));
}

.popover .popover-header:last-child, .popover .popover-footer:last-child {
    border-bottom-width: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-bottom-right-radius: var(--popover--border-bottom-right-radius, var(--border-bottom-right-radius));
    border-bottom-left-radius: var(--popover--border-bottom-left-radius, var(--border-bottom-left-radius));
}

.popover-arrow, .popover-arrow::after {
    width: var(--popover--arrow--size);
    height: var(--popover--arrow--size);
}

.popover-arrow, .popover-arrow::after {
    border-width: var(--popover--arrow--size);
}

.popover[data-popup-placement^="top"] .popover-arrow::after, .popover[data-popup-placement^="bottom"] .popover-arrow::after {
    margin-left: calc(var(--popover--arrow--size) * -1);
}

.popover[data-popup-placement^="left"] .popover-arrow::after, .popover[data-popup-placement^="right"] .popover-arrow::after {
    margin-top: calc(var(--popover--arrow--size) * -1);
}

.popover[data-popup-placement^="top"] .popover-arrow::after {
    bottom: 1px;
    border-top-color: var(--popover--background);
}

.popover[data-popup-placement^="top"] .popover-arrow {
    border-top-color: var(--popover--border-top-color);
}

.popover[data-popup-placement^="bottom"] .popover-arrow::after {
    top: 1px;
    border-bottom-color: var(--popover--background);
}

.popover[data-popup-placement^="bottom"] .popover-arrow {
    border-bottom-color: var(--popover--border-bottom-color);
}

.popover[data-popup-placement^="left"] .popover-arrow::after {
    right: 1px;
    border-left-color: var(--popover--background);
}

.popover[data-popup-placement^="left"] .popover-arrow {
    border-left-color: var(--popover--border-left-color);
}

.popover[data-popup-placement^="right"] .popover-arrow::after {
    left: 1px;
    border-right-color: var(--popover--background);
}

.popover[data-popup-placement^="right"] .popover-arrow {
    border-right-color: var(--popover--border-right-color);
}

.popover.-sm {
    --popover--width: var(--popover--sm--width);
}

.popover.-md {
    --popover--width: var(--popover--md--width);
}

.popover.-lg {
    --popover--width: var(--popover--lg--width);
}

.popover.-light {
    --popover--border-top-color: var(--popover--light--border-top-color);
    --popover--border-right-color: var(--popover--light--border-right-color);
    --popover--border-bottom-color: var(--popover--light--border-bottom-color);
    --popover--border-left-color: var(--popover--light--border-left-color);
    --popover--background: var(--popover--light--background);
    --popover--color: var(--popover--light--color);
}

.popover.-dark {
    --popover--border-top-color: var(--popover--dark--border-top-color);
    --popover--border-right-color: var(--popover--dark--border-right-color);
    --popover--border-bottom-color: var(--popover--dark--border-bottom-color);
    --popover--border-left-color: var(--popover--dark--border-left-color);
    --popover--background: var(--popover--dark--background);
    --popover--color: var(--popover--dark--color);
}
